494. Target Sum - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def findTargetSumWays(self, arr: List[int], target: int) -> int:

        dppos = []


        for i in range(2001):
            k = []
            for i in range(len(arr) + 1):
                k.append(-1)

            dppos.append(k)






        def trav(s, j):
            if s == target and j == len(arr):
                return 1

            if j == len(arr):
                return 0



            if dppos[s + 1000][j] != -1:
                return dppos[s + 1000][j]
            dppos[s + 1000][j] = 0





            dppos[s + 1000][j]  += trav(s + arr[j], j+1)
            dppos[s + 1000][j] += trav(s - arr[j] , j+1)

            return dppos[s + 1000][j]


        return trav(0, 0)


Comments

Submit
0 Comments
More Questions

80A - Panoramix's Prediction
1354B - Ternary String
122B - Lucky Substring
266B - Queue at the School
1490A - Dense Array
1650B - DIV + MOD
1549B - Gregor and the Pawn Game
553A - Kyoya and Colored Balls
1364A - XXXXX
1499B - Binary Removals
1569C - Jury Meeting
108A - Palindromic Times
46A - Ball Game
114A - Cifera
776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture